package com.zhu.instructions.loads;
import com.zhu.instructions.base.NoOperandsInstruction;
import com.zhu.rtda.Frame;
import com.zhu.rtda.InstanceOop;

/**
 * ALOAD_0 指令
 *
 * 操作码: 0x2a
 * 操作数: 无
 * 功能: 将局部变量表索引 0 处的引用加载到操作数栈顶。
 * 格式: aload_0
 * 说明: 常用于加载 'this' 引用或第一个引用类型的局部变量。
 */
public class ALOAD_0 extends NoOperandsInstruction {

    @Override
    public void execute(Frame frame) {
        InstanceOop ref = (InstanceOop) frame.getLocalVars().getRef(0);
        frame.getOperandStack().pushRef(ref);
    }
}
